+ UpdateImmortality(gameTime);
+ Shooting = false;
+ }
+
+ public void UpdateImmortality(GameTime gameTime)
+ {
+ if (Immortal)
+ {
+ CurrentImmortalTime += gameTime.ElapsedGameTime.Milliseconds;
+
+ if (Flashing)
+ {
+ Color = new Color(255, 255, 255, 128);
+ }
+ else
+ {
+ Color = Color.White;
+ }
+
+ Flashing = !Flashing;
+
+ if (CurrentImmortalTime > MaxImmortalTime)
+ {
+ Immortal = false;
+ Color = Color.White;
+ }
+ }
+ }
+
+ public override void Move(GameTime gameTime)
+ {
+ base.Move(gameTime);
+
+ if (Shooting)
+ {
+ if (Velocity.X > ActVelocity)
+ {
+ Velocity.X = ActVelocity;
+ }
+
+ if (Velocity.X < -ActVelocity)
+ {
+ Velocity.X = -ActVelocity;
+ }
+
+ if (Velocity.Y > ActVelocity)
+ {
+ Velocity.Y = ActVelocity;
+ }
+
+ if (Velocity.Y < -ActVelocity)
+ {
+ Velocity.Y = -ActVelocity;
+ }
+ }